home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / sbin / update-ca-certificates < prev    next >
Text File  |  2006-04-25  |  2KB  |  75 lines

  1. #!/bin/sh -e
  2. #
  3. # update-ca-certificates
  4. #
  5. # Copyright (c) 2003 Fumitoshi UKAI <ukai@debian.or.jp>
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19. #
  20.  
  21. verbose=0
  22. fresh=0
  23. while [ $# -gt 0 ];
  24. do
  25.   case $1 in
  26.   --verbose|-v)
  27.       verbose=1;;
  28.   --fresh|-f)
  29.     fresh=1;;
  30.   --help|-h|*)
  31.     echo "$0: [--verbose] [--fresh]"
  32.     exit;;
  33.   esac
  34.   shift
  35. done
  36.  
  37. CERTSCONF=/etc/ca-certificates.conf
  38. CERTSDIR=/usr/share/ca-certificates
  39. CERTBUNDLE=ca-certificates.crt
  40. cd /etc/ssl/certs
  41. if [ "$fresh" = 1 ]; then
  42.   echo -n "Clearing symlinks in /etc/ssl/certs..."
  43.   find . -type l -print0 | xargs -0 rm -f
  44.   echo "done."
  45. fi
  46. echo -n "Updating certificates in /etc/ssl/certs...."
  47.  
  48. bundletmp=`mktemp "${CERTBUNDLE}.tmp.XXXXXX"`
  49. sed -ne 's/^!//p' $CERTSCONF | while read crt
  50. do
  51.  if test "$crt" = ""; then continue; fi
  52.  pem=$(basename "$crt" .crt).pem
  53.  if test -e "$pem"; then rm -f "$pem"; fi
  54. done
  55.  
  56. sed -e '/^#/d' -e '/^!/d' $CERTSCONF | while read crt
  57. do
  58.  if test "$crt" = ""; then continue; fi
  59.  if ! test -f "$CERTSDIR/$crt"; then continue; fi
  60.  pem=$(basename "$crt" .crt).pem
  61.  ln -sf "$CERTSDIR/$crt" "$pem"
  62.  cat "$CERTSDIR/$crt" >> "$bundletmp"
  63. done
  64. chmod 0644 "$bundletmp"
  65. mv -f "$bundletmp" "$CERTBUNDLE"
  66.  
  67. if [ "$verbose" = 0 ]; then
  68.   c_rehash . > /dev/null 2>&1
  69. else
  70.   c_rehash .
  71. fi
  72. echo "done."
  73.  
  74.